package com.data.center.service;

import com.data.center.dto.OrganizationDto;
import com.data.center.entity.Organization;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

public interface OrganizationService {
    List<OrganizationDto> findOrganization(String name, String abbreviation);
    OrganizationDto addOrganization(OrganizationDto organizationDto);

    OrganizationDto renameOrganization(OrganizationDto originalOrganization, OrganizationDto updateOrganization);

    OrganizationDto updateOrganization(OrganizationDto originalOrganization, OrganizationDto organizationDto);

    boolean logicalDelete(String id);

    boolean physicalDelete(String id) throws InvocationTargetException, IllegalAccessException;

    OrganizationDto merge(OrganizationDto originalOrganization, OrganizationDto deletedOrganization) throws InvocationTargetException, IllegalAccessException;
}
